package com.ai.service.rocketMq;

import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.ConsumeMode;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
import springfox.documentation.spring.web.json.Json;

import java.nio.charset.Charset;
import java.util.Arrays;

/**
 *  因为对方传递的是算法的开启信号，所以需要做到顺序读，
 *   就需要将消费者的消费模式设置为同步消费顺序读
 * @Author jiaok
 * @Date 2023-11-08 15:18
 */
@Slf4j
@Service
@RocketMQMessageListener(topic = "ALGORITHM_ALARM_TOPIC",selectorExpression ="*",
        consumeMode = ConsumeMode.ORDERLY,consumerGroup="MQ_CONSUMER")
public class RocketMQConsumerService implements RocketMQListener<MessageExt> {
    @Override
    public void onMessage(MessageExt messageExt) {
        String tags = messageExt.getTags();
        String messageBody = new String(messageExt.getBody());
        JSONObject jsonObject = JSONObject.parseObject(messageBody);
//        JSONObject jsonObject = JSONObject.parseObject(messageBody);
        log.info("=========================== #RocketMQConsumerService.onMessage#  ===========================");
        log.info("===========================  监听到有消息发送到mq  ===========================");
//        log.info("=========================== MessageExt:{}  ===========================", JSONObject.toJSONString(messageExt));
        log.info("===========================  tags:{}, body:{}  ===========================",tags,messageBody);
        log.info("===========================  JSON:{}  ===========================",jsonObject.toJSONString());
    }
}
